<?php



/**

 * 登录相关

 */



namespace app\admin\controller;



use think\Controller;



class Login extends Controller

{

    /**

     * 登录试图

     */

    public function index()

    {

        // 获取session

        $userinfo = session("userinfo");

        $info = ["username" => "", "password" => "", "is_checked" => ""];

        // 验证是否登录

        if (empty($userinfo)) {

            $params = cookie("params");

            if (!empty($params)) {

                $info = $params;

            }

            $this->assign("info", $info);

            return view();

        } else {

            $this->redirect('Index/index');

        }

    }



    /**

     * 登录

     */

    public function login()

    {

        // 获取参数

        $params = input("post.");

        // 验证参数

        if (isset($params["username"]) && isset($params["password"])) {

            // 定义查询条件

            $where = [

                "username" => $params["username"],

                "password" => md5($params["password"])

            ];

            // 查询用户信息

            $info = db("user")

                ->where('status', '<>', 3)

                ->where($where)

                ->find();

            // 验证用户信息

            if ($info) {

                // 验证用户状态

                if ($info["status"] == 1) {

                    // 更新登录时间

                    db("user")->where("id", "=", $info["id"])->update(["last_time" => date("Y-m-d H:i:s")]);

                    // 存储登录信息

                    session("userinfo", $info);

                    if ($params["is_checked"] == 1) {

                        cookie("params", $params);

                    } else {

                        cookie("params", null);

                    }

                    logs(0, "バックエンドログイン", "ユーザー：【" . $params["username"] . "】，ログイン成功", $info["id"], $params["username"]);

                    $arr = ["code" => 0, "msg" => "ログイン成功"];

                } else if ($info["status"] == 2) {

                    logs(0, "バックエンドログイン", "ユーザー：【" . $params["username"] . "】，ログインに失敗しました、アカウントが無効になりました", "0", $params["username"]);

                    $arr = ["code" => 1, "msg" => "ログインに失敗しました。ユーザーは無効化されています。システム管理者に連絡してください。"];

                }

            } else {

                logs(0, "バックエンドログイン", "ユーザー：【" . $params["username"] . "】，ログインに失敗しました", "0", $params["username"]);

                $arr = ["code" => 1, "msg" => "ログインに失敗しました。ユーザー名またはパスワードが間違っています。"];

            }

        } else {

            logs(0, "バックエンドログイン", "ユーザーのログインに失敗しました。ユーザー名またはパスワードがありません", "0", "");

            $arr = ["code" => 1, "msg" => "ログインに失敗しました。ユーザー名またはパスワードを入力してください。"];

        }

        return json($arr);

    }



    /**

     * 退出

     */

    public function logout()

    {

        // 消除session

        $userinfo = session("userinfo");

        logs(0, "ログアウト", "ユーザー：【" . $userinfo["username"] . "】，ログアウト", $userinfo["id"], $userinfo["username"]);

        session("userinfo", null);

        return json(["code" => 0, "msg" => "無事終了しました！"]);

    }

}

